﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using DevExpress.Web.ASPxClasses;
using DevExpress.Web.ASPxEditors;
using DevExpress.Web.ASPxGridView;
using System.Data;
using System.Configuration;


public partial class Empleados : PageBase
{
    protected void Page_Load(object sender, EventArgs e)
    {

    }


    void cmbCity_OnCallback(object source, CallbackEventArgsBase e)
    {
        FillCityCombo(source as ASPxComboBox, e.Parameter);
    }

    private DataView GetCities(string country)
    {
        List<string> list = new List<string>();
        Municipios.SelectParameters[0].DefaultValue = country;
        DataView view = (DataView)Municipios.Select(DataSourceSelectArguments.Empty);
        //for (int i = 0; i < view.Count; i++)
        //{
        //    list.Add((string)view[i][0]);
        //}
        return view;
    }
    protected void FillCityCombo(ASPxComboBox cmb, string country)
    {
        if (string.IsNullOrEmpty(country)) return;

        //List<string> cities = GetCities(country);
        cmb.Items.Clear();

        DataView view = GetCities(country);
        cmb.DataSource = view;
        cmb.TextField = "ZON_NOMBRE";
        cmb.ValueField = "ZON_ID";
        cmb.DataBind();
        //foreach (string city in cities)
        //    cmb.Items.Add(city);
    }


    protected void ASPxGridViewEmpleados_CellEditorInitialize(object sender, ASPxGridViewEditorEventArgs e)
    {
        //if (!ASPxGridView2.IsEditing || e.Column.FieldName != "MUNICIPIO") return;
        if (e.Column.FieldName != "MUNICIPIO") return;
        ASPxComboBox combo = e.Editor as ASPxComboBox;
        combo.Callback += new CallbackEventHandlerBase(cmbCity_OnCallback);

        if (e.KeyValue == DBNull.Value || e.KeyValue == null) return;
        object val = ASPxGridViewEmpleados.GetRowValuesByKeyValue(e.KeyValue, "ZON_PADRE_ID");
        if (val == DBNull.Value) return;
        string country = (string)val;

        FillCityCombo(combo, country);


    }
    protected void ASPxButton1_Click(object sender, EventArgs e)
    {
        ASPxGridViewExporterEmpleados.WriteXlsToResponse();
    }
    protected void ASPxGridViewEmpleados_RowUpdated(object sender, DevExpress.Web.Data.ASPxDataUpdatedEventArgs e)
    {

        string strUsuario = "";
        string strClave = "";
        string strNit = "";


        strNit = "8600390049";

        if (Usuario.UsuId == 9)
        {
            strUsuario = "clara13@270";
            strClave = "cla1020736056";
        }
        else if (Usuario.UsuId == 15)
        {
            strUsuario = "paul91@270";
            strClave = "paul91541069";
        }
        
        try
        {
            string strZona = "";
            Model.DataClassesAutosolDataContext contexto = new Model.DataClassesAutosolDataContext(ConfigurationManager.AppSettings["Conn"]);
            var datos = from a in contexto.BAS_ZONAS_GEOGRAFICAs
                        where a.ZON_NOMBRE == e.NewValues["MUNICIPIO"].ToString()
                        select a;
            foreach (var v in datos)
            {
                strZona = v.ZON_ID;

            }

            string strCadena = "<?xml version='1.0' encoding='ISO-8859-1' ?><root><acceso><username>" + strUsuario + "</username><password>" + strClave + "</password></acceso><solicitud><tipo>1</tipo><procesoid>11</procesoid></solicitud><variables><NUMNITEMPRESATRANSPORTE>" + strNit + "</NUMNITEMPRESATRANSPORTE><CODTIPOIDTERCERO>" + e.NewValues["APE_TIPO"] + "</CODTIPOIDTERCERO>";
            strCadena = strCadena + "<NUMIDTERCERO>" + e.NewValues["APE_CEDULA"] + "</NUMIDTERCERO>";
            strCadena = strCadena + "<NOMIDTERCERO>" + e.NewValues["APE_NOMBRE"] + "</NOMIDTERCERO>";
            if (e.NewValues["APE_TIPO"].ToString() == "C")
            {
                strCadena = strCadena + "<PRIMERAPELLIDOIDTERCERO>" + e.NewValues["APE_PRIMER_APELLIDO"] + "</PRIMERAPELLIDOIDTERCERO>";
                strCadena = strCadena + "<SEGUNDOAPELLIDOIDTERCERO>" + e.NewValues["APE_SEGUNDO_APELLIDO"] + "</SEGUNDOAPELLIDOIDTERCERO>";
            }
            strCadena = strCadena + "<NUMTELEFONOCONTACTO>" + e.NewValues["APE_TELEFONO"] + "</NUMTELEFONOCONTACTO>";
            strCadena = strCadena + "<NOMENCLATURADIRECCION>" + e.NewValues["APE_DIRECCION"] + "</NOMENCLATURADIRECCION>";
            if (strZona == "")
                strZona = "11001";
            strCadena = strCadena + "<CODMUNICIPIORNDC>" + strZona + "000" + "</CODMUNICIPIORNDC>";
            strCadena = strCadena + "<CODSEDETERCERO>" + e.NewValues["APE_COD_SEDE_TERCERO"] + "</CODSEDETERCERO><NOMSEDETERCERO>" + e.NewValues["APE_NOM_SEDE_TERCERO"] + "</NOMSEDETERCERO>";
            strCadena = strCadena + "<NUMLICENCIACONDUCCION>" + e.NewValues["APE_LICENCIA"] + "</NUMLICENCIACONDUCCION>";
            strCadena = strCadena + "<CODCATEGORIALICENCIACONDUCCION>" + e.NewValues["APE_CATEGORIA"] + "</CODCATEGORIALICENCIACONDUCCION>";
            DateTime objDate = Convert.ToDateTime(e.NewValues["APE_FECHA_VENCIMIENTO_LICENCIA"]);
            objDate.ToShortDateString();
            strCadena = strCadena + "<FECHAVENCIMIENTOLICENCIA>" + objDate.ToString("dd/MM/yyyy") + "</FECHAVENCIMIENTOLICENCIA></variables></root>";



            wsMintransporte.BPMServicesClient obj = new wsMintransporte.BPMServicesClient();
            string strSalida = obj.AtenderMensajeBPM(strCadena);

            msgBox1.alert(strSalida);
            lblMensaje.Text = strSalida;

        }
        catch (Exception objEx)
        {
            string algo = objEx.Message.ToString();
            lblMensaje.Text = algo;
            
        }
    }
    protected void ASPxGridViewEmpleados_RowInserted(object sender, DevExpress.Web.Data.ASPxDataInsertedEventArgs e)
    {
        string strUsuario = "";
        string strClave = "";
        string strNit = "";


        strNit = "8600390049";

        if (Usuario.UsuId == 9)
        {
            strUsuario = "clara13@270";
            strClave = "cla1020736056";
        }
        else if (Usuario.UsuId == 15)
        {
            strUsuario = "paul91@270";
            strClave = "paul91541069";
        }
        
        try
        {
            string strZona = "";
            Model.DataClassesAutosolDataContext contexto = new Model.DataClassesAutosolDataContext(ConfigurationManager.AppSettings["Conn"]);
            var datos = from a in contexto.BAS_ZONAS_GEOGRAFICAs
                        where a.ZON_NOMBRE == e.NewValues["MUNICIPIO"].ToString()
                        select a;
            foreach (var v in datos)
            {
                strZona = v.ZON_ID;

            }

            string strCadena = "<?xml version='1.0' encoding='ISO-8859-1' ?><root><acceso><username>" + strUsuario + "</username><password>" + strClave + "</password></acceso><solicitud><tipo>1</tipo><procesoid>11</procesoid></solicitud><variables><NUMNITEMPRESATRANSPORTE>" + strNit + "</NUMNITEMPRESATRANSPORTE><CODTIPOIDTERCERO>" + e.NewValues["APE_TIPO"] + "</CODTIPOIDTERCERO>";
            strCadena = strCadena + "<NUMIDTERCERO>" + e.NewValues["APE_CEDULA"] + "</NUMIDTERCERO>";
            strCadena = strCadena + "<NOMIDTERCERO>" + e.NewValues["APE_NOMBRE"] + "</NOMIDTERCERO>";
            if (e.NewValues["APE_TIPO"].ToString() == "C")
            {
                strCadena = strCadena + "<PRIMERAPELLIDOIDTERCERO>" + e.NewValues["APE_PRIMER_APELLIDO"] + "</PRIMERAPELLIDOIDTERCERO>";
                strCadena = strCadena + "<SEGUNDOAPELLIDOIDTERCERO>" + e.NewValues["APE_SEGUNDO_APELLIDO"] + "</SEGUNDOAPELLIDOIDTERCERO>";
            }
            strCadena = strCadena + "<NUMTELEFONOCONTACTO>" + e.NewValues["APE_TELEFONO"] + "</NUMTELEFONOCONTACTO>";
            strCadena = strCadena + "<NOMENCLATURADIRECCION>" + e.NewValues["APE_DIRECCION"] + "</NOMENCLATURADIRECCION>";
            if (strZona == "")
                strZona = "11001";
            strCadena = strCadena + "<CODMUNICIPIORNDC>" + strZona + "000" + "</CODMUNICIPIORNDC>";
            strCadena = strCadena + "<CODSEDETERCERO>" + e.NewValues["APE_COD_SEDE_TERCERO"] + "</CODSEDETERCERO><NOMSEDETERCERO>" + e.NewValues["APE_NOM_SEDE_TERCERO"] + "</NOMSEDETERCERO>";
            strCadena = strCadena + "<NUMLICENCIACONDUCCION>" + e.NewValues["APE_LICENCIA"] + "</NUMLICENCIACONDUCCION>";
            strCadena = strCadena + "<CODCATEGORIALICENCIACONDUCCION>" + e.NewValues["APE_CATEGORIA"] + "</CODCATEGORIALICENCIACONDUCCION>";
            DateTime objDate = Convert.ToDateTime(e.NewValues["APE_FECHA_VENCIMIENTO_LICENCIA"]);
            objDate.ToShortDateString();
            strCadena = strCadena + "<FECHAVENCIMIENTOLICENCIA>" + objDate.ToString("dd/MM/yyyy") + "</FECHAVENCIMIENTOLICENCIA></variables></root>";



            wsMintransporte.BPMServicesClient obj = new wsMintransporte.BPMServicesClient();
            string strSalida = obj.AtenderMensajeBPM(strCadena);

            msgBox1.alert(strSalida);
            lblMensaje.Text = strSalida;

        }
        catch (Exception objEx)
        {
            string algo = objEx.Message.ToString();
            lblMensaje.Text = algo;
            
        }
    }
    protected void ASPxGridViewEmpleados_RowValidating(object sender, DevExpress.Web.Data.ASPxDataValidationEventArgs e)
    {
        if (e.NewValues["APE_CEDULA"] == null)
        {
            AddError(e.Errors, ASPxGridViewEmpleados.Columns["APE_CEDULA"],
                     "CAMPO OBLIGATORIO");
        }
        if (e.NewValues["APE_NOMBRE"] == null)
        {
            AddError(e.Errors, ASPxGridViewEmpleados.Columns["APE_NOMBRE"],
                     "CAMPO OBLIGATORIO");
        }
        if (e.NewValues["APE_TELEFONO"] == null)
        {
            AddError(e.Errors, ASPxGridViewEmpleados.Columns["APE_TELEFONO"],
                     "CAMPO OBLIGATORIO");
        }
        if (e.NewValues["APE_DIRECCION"] == null)
        {
            AddError(e.Errors, ASPxGridViewEmpleados.Columns["APE_DIRECCION"],
                     "CAMPO OBLIGATORIO");
        }
        if (e.NewValues["IPO IDENTIFICACION"] == null)
        {
            AddError(e.Errors, ASPxGridViewEmpleados.Columns["IPO IDENTIFICACION"],
                     "CAMPO OBLIGATORIO");
        }
    }

    static void AddError(Dictionary<GridViewColumn, string> errors, GridViewColumn column, string errorText)
    {
        if (errors.ContainsKey(column)) return;
        errors[column] = errorText;
    }
}